import { Injectable } from '@angular/core';
import { NzMessageService } from 'ng-zorro-antd/message';

@Injectable({
  providedIn: 'root'
})
export class Verify {
  constructor(
    private message: NzMessageService
  ){}

  username(username: string) {
    //用户名正则，6到16位（字母，数字，下划线，短横线）
    let uPattern = /^[a-zA-Z0-9-_]{6,16}$/;
    if(uPattern.test(username)){
      return true;
    }
    this.message.error('用户名6到16位（由字母，数字，下划线，短横线组成）')
    return false
  }

  password(pwd: string) {
    let uPattern = /^(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9~!@&%#_]{8,16}$/
    if(uPattern.test(pwd)) {
      return true;
    }
    this.message.error('密码必须包含一个大写，一个小写字母，且长度为8到16位')
    return false
  }

  phone(phone: string) {
    let uPattern = /^((13[0-9])|(14[0-9])|(15[0-9])|(17[0-9])|(18[0-9])|(19[0-9]))\d{8}$/;
    if(uPattern.test(phone)) {
      return true;
    }
    this.message.error('请输入正确的电话号码')
    return false
  }

  code(code: string) {
    let uPattern = /^\d{6}$/
    if(uPattern.test(code)) {
      return true
    }
    this.message.error('请输入6位验证码')
    return false
  }

  pwdConf(pwd: string, pwdCon: string) {
    if(pwd === pwdCon) {
      return true
    }
    this.message.error('请输入正确的密码')
    return false
  }

  email(email:string) {
    let uPattern = /^[a-zA-Z0-9_\.-]+@([a-zA-Z0-9-]+\.)+[a-zA-Z0-9]{2,4}$/;
    if(uPattern.test(email)) return true;
    this.message.error('请输入正确的邮箱')
    return false;
  }

  idCard(Id: string) {
    let uPattern = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
    if(uPattern.test(Id)) return true;
    this.message.error('请输入正确的身份证号码')
    return false;
  }

  isNotNull(content: string) {
    if(content!=='') {
      return true
    }
    this.message.error('理由不能为空')
    return false
  }
}
